package dingtalk

// AddTodo 待办任务-发起待办
// https://ding-doc.dingtalk.com/doc#/serverapi2/gpmpiq
type AddTodo struct {
	BizID      string `json:"biz_id"`
	CreateTime int64  `json:"create_time"`
	// PcURL pc端跳转url，不传则使用url参数
	PcURL        string `json:"pcUrl"`
	PcOpenType   int    `json:"pc_open_type"`
	FormItemList struct {
		Title   string `json:"title"`
		Content string `json:"content"`
	} `json:"formItemList"`
	Title string `json:"title"`
	// Userid 待办事项对应的用户id
	Userid string `json:"userid"`
	// URL 待办事项的跳转链接。当链接是某个微应用链接时，希望在PC端工作台打开，可通过该方式实现。
	URL              string `json:"url"`
	OriginatorUserID string `json:"originator_user_id"`
	SourceName       string `json:"source_name"`
}

// AddTodoRsp 待办任务-新增待办事项 返回结果
// https://ding-doc.dingtalk.com/doc#/serverapi2/gpmpiq
type AddTodoRsp struct {
	// Errcode 返回码
	Errcode int `json:"errcode"`
	// Errmsg 对返回码的文本描述内容
	Errmsg string `json:"errmsg"`
	// RecordID 待办事项唯一id，更新待办事项的时候需要用到
	RecordID string `json:"record_id"`
}

// EditTodo EditTodo
type EditTodo struct {
	// 待办事项对应的用户id
	Userid string `json:"userid"`
	// 	待办事项唯一id。
	// 该id可以使用创建待办接口中传入的biz_id，也可以使用创建待办接口返回结果中的record_id
	RecordID string `json:"record_id"`
}

// EditTodoRsp 待办任务-更新待办
// 企业可以调用该接口更新待办事项状态，调用成功后，该待办事项在该用户的“待办事项”列表页面中消失。
type EditTodoRsp struct {
	// Errcode 返回码 33012 无效的userid 请检查userid参数是否合法
	Errcode int `json:"errcode"`
	// Errmsg 对返回码的文本描述内容
	Errmsg string `json:"errmsg"`
	// Result	true表示更新成功，false表示更新失败
	Result bool `json:"result"`
}

// UserTodoList 获取用户待办事项
type UserTodoList struct {
	// Userid 待办事项对应的用户id
	Userid string `json:"userid"`
	// Offset 分页游标，从0开始，如返回结果中has_more为true，则表示还有数据，offset再传上一次的offset+limit
	Offset int `json:"offset"`
	// Limit 每次请求可获取的最大待办数量，最多传50
	Limit int `json:"limit"`
	// Status 待办事项状态，0表示未完成，1表示完成
	Status int `json:"status"`
}

// UserTodoListRsp 待办任务-获取用户的待办事项
// https://ding-doc.dingtalk.com/doc#/serverapi2/neevhm
type UserTodoListRsp struct {
	// Errcode 返回码
	// 参数      说明            排查方法
	// 40068 	无效的offset 	offset不能小于0
	// 40069	无效的limit	    limit必须在0和50之间
	// 33012 	无效的userid 	请检查userid参数是否合法
	Errcode int `json:"errcode"`
	// Errmsg 对返回码的文本描述内容
	Errmsg  string `json:"errmsg"`
	Records struct {
		// HasMore true和false，其中true表示还有多余的数据
		HasMore bool `json:"has_more"`
		List    []struct {
			// RecordID 待办事项id，可用此id调用更新待办的接口
			RecordID string `json:"record_id"`
			// CreateTime 待办事项发起时间
			CreateTime int `json:"create_time"`
			// Title 待办标题
			Title string `json:"title"`
			// URL 待办跳转链接
			URL string `json:"url"`
			// Forms 待办表单列表
			Forms []struct {
				// 表单标题
				Title string `json:"title"`
				// Content 表单内容
				Content string `json:"content"`
			} `json:"forms"`
		} `json:"list"`
	} `json:"records"`
}

// SendNormalMessageRsp 消息通知-发送普通消息
// https://ding-doc.dingtalk.com/doc#/serverapi2/pm0m06
type SendNormalMessageRsp struct {
	Errcode  int    `json:"errcode"`
	Errmsg   string `json:"errmsg"`
	Receiver string `json:"receiver"`
}
